﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace Atentis_Connector
{
	/// <summary>
	/// Информация о собственных заявках.
	/// </summary>
	class WrapperOrders
	{
		private long m_OrderNo;
		/// <summary>
		/// Идентификационный номер заявки в торговой системе
		/// </summary>
		public long OrderNo {get {return m_OrderNo;} set {m_OrderNo=value;}}

		private DateTime m_OrderTime;
		/// <summary>
		/// Время регистрации заявки в торговой системе
		/// </summary>
		public DateTime OrderTime {get {return m_OrderTime;} set {m_OrderTime = value;}}

		private DateTime m_WithdrawTime;
		/// <summary>
		/// Время снятия (отмены) заявки в торговой системе
		/// </summary>
		public DateTime WithdrawTime {get {return m_WithdrawTime;} set {m_WithdrawTime = value;}}

		private string m_Status;
		/// <summary>
		/// Текущее состояние заявки:
		/// "A" – принята торговой системой, но пока не обновлена в таблице терминала,
		/// "O" – активная,
		/// "M" – исполнена,
		/// "W" – снята,
		/// "N" – отклонена контрагентом,
		/// "R" – отклонена торговой системой,
		/// "C" – снята торговой системой
		/// </summary>
		public string Status {get {return m_Status;} set {m_Status = value;}}

		private string m_MktLimit;
		/// <summary>
		/// Тип заявки: "M" – рыночная, "L" – лимитированная    
		/// </summary>
		public string MktLimit{get {return m_MktLimit;} set {m_MktLimit = value;}}

		private string m_BuySell;
		/// <summary>
		/// Направленность заявки: "B" – покупка, "S" – продажа
		/// </summary>
		public string BuySell {get {return m_BuySell;} set {m_BuySell = value;}}

		private string m_SplitFlag;
		/// <summary>
		/// Признак расщепления цены: "S" – по разным ценам, "O" – по одной цене
		/// </summary>
		public string SplitFlag {get {return m_SplitFlag;} set {m_SplitFlag = value;}}

		private string m_ImmCancel;
		/// <summary>
		/// Условие исполнения: " " (пробел) – поставить в очередь, "N" – немедленно или отклонить, "W" – снять остаток
		/// </summary>
		public string ImmCancel {get {return m_ImmCancel;} set {m_ImmCancel = value;}}

		private string m_EntryType;
		/// <summary>
		/// Тип ввода значения цены: "P" – цена, "Y" – доходность, "W" – средневзвешенная цена
		/// </summary>
		public string EntryType {get {return m_EntryType;} set {m_EntryType = value;}}

		private string m_MarketMaker;
		/// <summary>
		/// Признак заявки Маркет-Мейкера: "Y" – заявка Маркет-Мейкера, "N" – обычная заявка
		/// </summary>
		public string MarketMaker {get {return m_MarketMaker;} set {m_MarketMaker = value;}}

		private string m_BrokerRef;
		/// <summary>
		/// Ссылка типа [счет клиента]/[субсчет]
		/// </summary>
		public string BrokerRef {get {return m_BrokerRef;} set {m_BrokerRef = value;}}

		private string m_BrokerID;
		/// <summary>
		/// Код клиента
		/// </summary>
		public string BrokerID {get {return m_BrokerID;} set {m_BrokerID = value;}}

		private string m_UserID;
		/// <summary>
		/// Идентификатор трейдера, отправившего заявк
		/// </summary>
		public string UserID {get {return m_UserID;} set {m_UserID = value;}}

		private string m_FirmID;
		/// <summary>
		/// Идентификатор фирмы, от имени которой была отправлена заявка
		/// </summary>
		public string FirmID {get {return m_FirmID;} set {m_FirmID = value;}}

		private string m_Account;
		/// <summary>
		/// Торговый счет, в счет которого отправлена данная заявка
		/// </summary>
		public string Account {get {return m_Account;} set {m_Account = value;}}

		private int m_SecID;
		/// <summary>
		/// Идентификатор финансового инструмента
		/// </summary>
		public int SecID {get {return m_SecID;} set {m_SecID = value;}}

		private string m_SecBoard;
		/// <summary>
		/// Код режима торгов для финансового инструмента
		/// </summary>
		public string SecBoard {get {return m_SecBoard;} set {m_SecBoard = value;}}

		private string m_SecCode;
		/// <summary>
		/// Код финансового инструмента
		/// </summary>
		public string SecCode {get {return m_SecCode;} set {m_SecCode = value;}}

		private double m_Price;
		/// <summary>
		/// Цена за одну ценную бумагу
		/// </summary>
		public double Price {get {return m_Price;} set {m_Price = value;}}

		private double m_Price2;
		/// <summary>
		/// Цена выкупа второй части РЕПО
		/// </summary>
		public double Price2 {get {return m_Price2;} set {m_Price2 = value;}}

		private int m_Quantity;
		/// <summary>
		/// Количество ценных бумаг, выраженное в лотах
		/// </summary>
		public int Quantity {get {return m_Quantity;} set {m_Quantity = value;}}

		private int m_Balance;
		/// <summary>
		/// Объем неисполненной части заявки, выраженный в лотах
		/// </summary>
		public int Balance {get {return m_Balance;} set {m_Balance = value;}}

		private double m_Value;
		/// <summary>
		/// Объем заявки (без учета комиссионного сбора Биржи и % дохода), выраженный в рублях
		/// </summary>
		public double Value {get {return m_Value;} set {m_Value = value;}}

		private double m_AccruedInt;
		/// <summary>
		/// Накопленный купонный доход, рассчитанный для указанного в заявке количества ценных бумаг, выраженный в рублях
		/// </summary>
		public double AccruedInt {get {return m_AccruedInt;} set {m_AccruedInt = value;}}

		private string m_EnterType;
		/// <summary>
		/// Тип ввода значения цены: "P" – цена, "Y" – доходность, "W" – средневзвешенная цена
		/// </summary>
		public string EnterType {get {return m_EnterType;} set {m_EnterType = value;}}

		private double m_Yield;
		/// <summary>
		/// Доходность, рассчитанная по цене заявки
		/// </summary>
		public double Yield {get {return m_Yield;} set {m_Yield = value;}}

		private string m_Period;
		/// <summary>
		/// Период торгов: "O" – открытие, "N" – нормальный, "C" – закрытие
		/// </summary>
		public string Period {get {return m_Period;} set {m_Period = value;}}

		private string m_ExtRef;
		/// <summary>
		/// Поле-примечание, используемое для обратной связи с внешними системами
		/// </summary>
		public string ExtRef { get { return m_ExtRef; } set { m_ExtRef = value; } }
  
	}
}
